package com.cmccsi.uc.redis;

import java.util.List;
import java.util.Map;

import com.thn.netty.chat.server.ExecRedisCmdErr;

public interface IRedisCsync {
	
	//根据群组ID获取群组的成员
	public int getGrpMemberFromRedisByGrpId( long ulGroupId, List<Long> memberList, ExecRedisCmdErr rtValue );

		//获取订阅状态
	public 	int getSubscriber( long ulUserId, List<Long> subscUserIdList, ExecRedisCmdErr rtValue,String strDeviceType );

	public int getUserSubscriber( long ulUserId, List<Long> subscUserIdList, ExecRedisCmdErr rtValue,String strDeviceType,String strType );
		//获取用户的登录状态
	public int getUserLoginInfo( long ulUserId, StringBuffer loginInfo, ExecRedisCmdErr rtValue );

		//获取notify里面的数据
	public int getNotifyContent( Map<String,String> hashMap, ExecRedisCmdErr rtValue );
		//删除notify的数据,不推荐使用，建议使用异步删除的操作
	public int delNotifyContent(  String hashKeys, ExecRedisCmdErr rtValue );

		//获取qx_pushnotify里面的数据
	public int getAppMsgContent( Map<String,String> hashMap, ExecRedisCmdErr rtValue );
		//删除qx_pushnotify里面的数据
	public int delAppMsgContent(  String hashKeys, ExecRedisCmdErr rtValue );

		//获取短信上行的数据
	public int getSMSMsgContent( Map<String,String> hashMap, ExecRedisCmdErr rtValue );
		//删除短信上行的数据
	public int delSMSMsgContent(  String hashKeys, ExecRedisCmdErr rtValue );


		//获取msg里面的数据
	public int getMsgContent( int msgType, List<String> msgList, ExecRedisCmdErr rtValue );

		//获取全部的部门ID
	public int getAllDeptId( List<Long> deptIdList, ExecRedisCmdErr rtValue );
		//根据部门ID获取部门全部成员
	public int getDeptMemberIdByDeptId( long ulDeptId, List<Long> deptMemberIdList, ExecRedisCmdErr rtValue );
		//根据domainid 获取部门ID
	public int getDeptIdByDomainId( String strDomainid, List<Long> deptIdList, ExecRedisCmdErr rtValue );

		//通过号码获取用户id
	public int getUserIdByTelphone(  String telphone, StringBuffer strUserId, ExecRedisCmdErr rtValue );

		//通过用户id获取用户信息
	public int getUserInfoByUserId( long ulUserId, StringBuffer strUserInfo, ExecRedisCmdErr rtValue );
	public int getUserInfoByUserId(  String szUserId, StringBuffer szUserInfo, ExecRedisCmdErr rtValue );

		//通过用户id获取用户信息
	public int getMobileNumByGroupId( long ulGroupId, StringBuffer strMobileNum, ExecRedisCmdErr rtValue );

		//获取用户的session
	public int getUserSession(  String userid, StringBuffer szSession, ExecRedisCmdErr rtValue );

		//获取iostoken
	public int getIosTokenByUserId(  String szUserId, StringBuffer szIosToken, ExecRedisCmdErr rtValue );

		//获取所有需ios推送userid
	public int getAllIosTokenUserIds(List<Long> userIdList,  ExecRedisCmdErr rtValue );

		//获取freeswitch中的数据
	public int getFreeSwitchJson( List<String> fsListJson, ExecRedisCmdErr rtValue );
		//获取单个freeswitch中的数据
	public int getFreeSwitchJson( StringBuffer fsJson, ExecRedisCmdErr rtValue );

	//public int initRedisConn(  String server, int port );		//create a connection
		//删除SessionId
	public int deleteUserSession(  String userid,  StringBuffer strSessionId, ExecRedisCmdErr rtValue );

		//删除预删除SessionId
	public int deletePreDelSession(  String strSessionId, ExecRedisCmdErr rtValue );

		//获取用户的session
	public int getPreDelSession(  String szSession, StringBuffer userid, ExecRedisCmdErr rtValue );

		// 获取多人或广播消息
	public int getBroadcastMsgByCount( String[]strMsgArray, int ulCount, ExecRedisCmdErr rtValue );
	public int getBroadcastMsg( StringBuffer strMsg, ExecRedisCmdErr rtValue );

		//获取需要发送短信的内容
	public int getPreSendSmsMsg( StringBuffer szMmsMsg, ExecRedisCmdErr rtValue );

	public int getIosPushMsg( StringBuffer strMsg, ExecRedisCmdErr rtValue );
		//获取回执错误信息
	public int getGroupStatusErr( List<String> szList, ExecRedisCmdErr rtValue );



}
